#ifndef __EVENT_H__
#define __EVENT_H__

#include <string>

class Event
{
public:
	Event() {}
	virtual ~Event() {}
	
	virtual std::string toString(void) const { return "Event"; }

	friend std::ostream& operator<<(std::ostream& stream, Event e)
	{
		return stream << e.toString() ;
	}
	
	Event* toEvent() { return dynamic_cast<Event*>(this); }
	
//	void* source;
};

#endif
